{% extends "help/index.html" %}


{% block contentblock %}
    <div class="article">
        <div class="title">
            <div class="title-text">Oauth授权<span
                    class="update-time"><i>更新时间:</i><i>2019-11-20</i></span></div>
        </div>
        <div class="content">
            <h2>oauth授权地址&token地址</h2>
            <div><pre><code>
测试环境：
Authorize url: https://open-w.baidu.com/o/authorize/
Token url: https://open-w.baidu.com/o/get_token/
refresh token url: https://open-w.baidu.com/o/get_token/
正式环境：
Authorize url: https://open.baidu.com/o/authorize/
Token url: https://open.baidu.com/o/get_token/
refresh token url: https://open.baidu.com/o/get_token/
            </code></pre>
            </div>
            <h2 id="流程简介">流程简介</h2>
            <p>yourhost 登录OAuth2.0总体处理流程如下：</p>
            <p>Step1：申请接入，获取client id(appid)和client secret(appkey)；</p>
            <p>Step2：开发应用，并设置进行测试联调；</p>
            <p>Step3：通过用户登录验证和授权，获取Access Token；</p>
            <p>Step4：通过Access Token，请求API信息。</p>
            <h2>oauth获取access token： 第一步</h2>
            <p>1.请求以下网址 /o/authorize?client_id=
                <your_client_id>&response_type=code&state=random_state_string
            </p>
            <div><pre><code>
https://open-w.yourhost.com/o/authorize?client_id=<your_client_id>&response_type=code&state=random_state_string
random_state_string 可以换成自己定义数据
            </code></pre>
            </div>
            <p>2.到达 yourhost 登录页面</p>
            <p>3.用户登录成功后，点确认授权</p>
            <p>4.用户点完授权，yourhost会向回调地址发送code数据</p>
            <p>5.发起请求服务器，通过code向yourhost，<code>/o/get_token/</code>发送POST请求，获取access token </p>
            <p>接口地址： <code>https://open-w.yourhost.com/o/get_token/</code></p>
            <p>HTTP Method: POST</p>
            <p>限制: 必须从服务器端接入</p>
            <p>参数：</p>
            <table>
                <thead>
                <th>参数名</th>
                <th>类型</th>
                <th>必填</th>
                <th>描述</th>
                </thead>
                <tbody>
                <tr>
                    <td>client_id</td>
                    <td>String</td>
                    <td>是</td>
                    <td>开放平台应用公钥，即app_key</td>
                </tr>
                <tr>
                    <td>client_secret</td>
                    <td>String</td>
                    <td>是</td>
                    <td>开放平台应用私钥，即app_secret</td>
                </tr>
                <tr>
                    <td>grant_type</td>
                    <td>String</td>
                    <td>是</td>
                    <td>授权模式，固定值"authorization_code"</td>
                </tr>
                <tr>
                    <td>code</td>
                    <td>String</td>
                    <td>是</td>
                    <td>临时授权码, 点击<a href="#">查看授权流程及获取code码</a></td>
                </tr>
                <tr>
                    <td>redirect_uri</td>
                    <td>String</td>
                    <td>是</td>
                    <td>OAuth2回调地址，即创建应用时填写的回调地址。使用时请对它的值进行URL编码处理，并最好提供https地址</td>
                </tr>
                </tbody>
            </table>
            <p>返回值</p>
            <table>
                <thead>
                <th>字段名</th>
                <th>类型</th>
                <th>描述</th>
                </thead>
                <tbody>
                <tr>
                    <td>access_token</td>
                    <td>String</td>
                    <td>OAuth2标准授权得到的访问令牌</td>
                </tr>
                <tr>
                    <td>expires_in</td>
                    <td>Int</td>
                    <td>访问令牌的失效时间，单位为秒</td>
                </tr>
                <tr>
                    <td>refresh_token</td>
                    <td>String</td>
                    <td>刷新令牌，用于刷新访问令牌, 刷新接口请参考<a href="#">/o/get_token/</a></td>
                </tr>
                </tbody>
            </table>
            <p>实例</p>
            <pre>
                <code>
curl
-X POST
-H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8"
-d
"grant_type=authorization_code&redirect_uri=https://api.aliyun.com/openapi-collector-app/get_access_token&client_secret=4d8e605fa7ed546c4bcb33dee1381179&client_id=b617866c20482d133d5de66fceb37da3&device_id=869350024794165&code=5b72c5adb9c3380ac91a3a34b199c332"
https://open-w.yourhost.com/o/get_token/

{
    "access_token": "066178dae7b3a3b12a86e91feeb2fceb",
    "expires_in": 7200,
    "refresh_token": "a4d0e2f88b565671b4d769091d83fa39"
}
                </code>
            </pre>
        </div>
    </div>
{% endblock contentblock %}